package control;

import entidad.Presupuesto;
import entidad.Rubro;
import entidad.Sistema;
import java.util.ArrayList;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.A1F8B963-4B2F-0FD0-B762-BAA002123F13]
// </editor-fold> 
public class ControlPresupuesto {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.51A05F7D-6354-03BA-D11A-BB38E4AD0F44]
    // </editor-fold> 
    private Presupuesto mPresupuesto;

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.5A09A392-170C-0C9B-0CC0-AB6087D8DABA]
    // </editor-fold> 
    public ControlPresupuesto () {
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.53D85BF5-7934-BD36-3437-07934930D2D2]
    // </editor-fold> 
    public Presupuesto getPresupuesto () {
        return mPresupuesto;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,regenBody=yes,id=DCE.2210C120-95CE-9420-A184-BBC976D37039]
    // </editor-fold> 
    public void setPresupuesto (Presupuesto val) {
        this.mPresupuesto = val;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.D6135295-13E6-CE5F-205D-AB4B91DBF984]
    // </editor-fold> 
    public boolean nombreDisponible (String nombrePlaneacion) {
        //Revisa si la cadena de entrada es diferente al nombre de la planeacion, si es asi, la cadena está disponible
        return !(mPresupuesto.getNombrePlaneacion().equals(nombrePlaneacion));
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.51B47C0A-4375-DFD2-E9C3-ABDC18629339]
    // </editor-fold> 
    public boolean verificarAsignado (float asignado) {
        //Revisa que el presupuesto asignado no sea negativo
        return (asignado>0);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.733A7352-607C-F9F6-D108-8E3D60919AFD]
    // </editor-fold> 
    public Presupuesto getPresupuesto (Sistema sistema, String nombre) {
        //Busca entre los presupuestos del sistema el que tenga como nombre la cadena de entrada
        //y retorna el apuntador
        for (Presupuesto p: sistema.getPresupuesto())
            if(p.getNombrePlaneacion().equals(nombre))
                return p;
        //si no lo encuentra, retorna NULL
        return null;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.B37A9B45-CB5A-D9B1-9A18-0756D169B6FB]
    // </editor-fold> 
    public void generarReporte (Presupuesto planeacion) {
        //metodo no necesario
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.9EE5B6A0-4511-7CE4-9833-C67EFC4737F1]
    // </editor-fold> 
    public ArrayList<Rubro> getRubros (Presupuesto presupuesto) {
        //Retorna un apuntador a la lista de rubros del presupuesto de entrada
        return presupuesto.getRubro();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.8F67E2C1-31F1-05C5-6C53-48A71449C01B]
    // </editor-fold> 
    public void agregarRubro (Rubro rubro, Presupuesto presupuesto) {
        //Llama a la funcion agregarRubro(rubro) para agregar un rubro al presupuesto que entra como parametro
        presupuesto.agregarRubro(rubro);
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.7D5C0B76-ADA9-D154-89C9-D840E87ADD41]
    // </editor-fold> 
    public void eliminarRubro (int idRubro, Presupuesto presupuesto) {
        //Elimina el rubro del presupuesto que entra como parametro
        presupuesto.eliminarRubro(idRubro);
    }
    
}

